package com.coolt.client.components;

import java.util.List;

import com.coolt.client.Labels;
import com.coolt.client.Util;
import com.coolt.client.model.Usuario;
import com.coolt.client.model.mock.UsuarioMO;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.VerticalPanel;

public class Usuarios extends DynamicTable {

	private Labels labelsConstants = GWT.create(Labels.class);

	public Usuarios() {

		setTitle(labelsConstants.menuCoolts());
		inicia(15);
		setTotalPages(3); // TO DO!!!
		carregarLista();
	}

	final AsyncCallback callbackUsuarios = new AsyncCallback() {
		public void onSuccess(Object result) {

			setListTable((List<Usuario>) result);
			displayTable();
			carregarLinkPaginas();
		}

		public void onFailure(Throwable caught) {
			displayFailure();
		}
	};

	public void carregarLista() {

		writeCharging();
		Usuario usuario = new Usuario();
		Util.getService().listaUsuarios(usuario, getPageSize(), getPageNow(),
				callbackUsuarios);
	}

	private void carregarListaStub() {
		setListTable(UsuarioMO.listaUsuarioMO());
		displayTable();
		carregarLinkPaginas();
	}

	public VerticalPanel showElement(int i) {

		return Util.userImageNome(((List<Usuario>) getListTable()).get(i));
	}
}
